

#ifndef _TIME_STAMP_H
#define _TIME_STAMP_H

#include <cstdint>
#include <string>

namespace zephyr {

class Timestamp {
    public:
    Timestamp();
    explicit Timestamp(int64_t microSecondsSinceEpoch);
    static Timestamp now();
    std::string toString() const;
    inline bool operator<(Timestamp &other) {
      return m_microSecondsSinceEpoch < other.m_microSecondsSinceEpoch;
    }
    inline bool operator==(Timestamp &other) {
      return m_microSecondsSinceEpoch == other.m_microSecondsSinceEpoch;
    }
private:
    int64_t m_microSecondsSinceEpoch;
};

}

#endif // _TIME_STAMP_H